"""
演示将RDD输出到文件中
"""

from pyspark import SparkConf, SparkContext
import os

os.environ['PYSPARK_PYTHON'] = "D:/Software/Work/miniconda3/python.exe"
os.environ['HADOOP_HOME'] = "D:/Software/Work/hadoop-3.0.0"

conf = SparkConf().setMaster("local[*]").setAppName("test_spark")
# 为了让输出的文件只有一个，方式一：将spark的全局并行度设置为1，默认情况下CPU有多少个核就有多少个并行度，有几个并行度就会将数据分散在几个文件中
# conf.set("spark.default.parallelism", "1")
sc = SparkContext(conf=conf)

# 准备RDD
# 为了让输出的文件只有一个，方式二：在创建RD的时候设置numSlices参数为1
rdd1 = sc.parallelize([1, 2, 3, 4, 5], numSlices=1)
rdd2 = sc.parallelize([("hello", 3), ("Spark", 5), ("Hi", 7)], 1)
rdd3 = sc.parallelize([[1, 3, 5], [6, 7, 9], [11, 13, 11]], 1)

# 输出到文件夹中（不能是已存在的文件夹）
rdd1.saveAsTextFile("output1")
rdd2.saveAsTextFile("output2")
rdd3.saveAsTextFile("output3")

sc.stop()
